¿Cómo se hace un esquema de base de datos? ¿Qué es un esquema de base de datos en SQL Server? ¿Qué es un esquema de base de datos Oracle? ¿Cuáles son los diferentes tipos de esquemas?

Esquema de las bases de datos

Antes de la creación de los SGBD, los datos se guardaban en archivos almacenados en el sistema operativo. Los mismos eran leídos por diferentes programas, lo cual traía una serie de problemas:

  • Datos dependientes del programa (y del programador).
  • Menor productividad.
  • Redundancia (duplicación de datos) que daba lugar a problemas de inconsistencia.
  • Dificultad de acceso.
  • Datos aislados (no integrados).
  • Era responsabilidad exclusiva de cada programador asuntos tales como:
  • Restricciones de datos.
  • Atomicidad.
  • Anomalías de acceso concurrente.
  • Seguridad.
  • Performance.
  • El esquema de la base de datos es el modelo de datos lógico, es el diseño general de la estructura de la base de datos. Un esquema se especifica con un conjunto de definiciones que se expresan usando un lenguaje de definición de datos (DDL). Éste incluye órdenes para definir, modificar o borrar las tablas en las que se almacenan los datos, las relaciones entre éstos, definir restricciones de integridad, de acceso, de índices, etc.; es decir, todo lo que se refiera a la definición de la base de datos. El diseño del esquema de la base de datos depende del software SGBD que se va a usar.

    Un esquema posee los siguientes elementos:

    El diseño general de la estructura base de datos se denomina el esquema de la base de datos. Un esquema de base de datos se especifica con un conjunto de definiciones que se expresan usando un lenguaje de definición de

    datos (DDL).

    Tablas

    Al crear una tabla se deben añadir sus atributos, representados en columnas. Para cada atributo se debe especificar:

  • Nombre.
  • Tipo de dato, lo que define el dominio de los valores que puede asumir el atributo.
  • Longitud.
  • Si se permite valor null, es decir un valor vacío. De permitirse, el dato será no obligatorio.
  • Si toman un valor predeterminado.
  • Tipos de dato

    Numéricos

    Exactos

    Vistas

    No resulta deseable que todos los usuarios vean el modelo lógico completo. Las consideraciones de seguridad pueden exigir que se oculten ciertos datos a los usuarios. Por otro lado, puede que se desee crear un conjunto personalizado de relaciones que se adapte mejor a la intuición de un usuario determinado que el modelo lógico.

    Las relaciones que no forman parte del modelo lógico, pero se hacen visibles a los usuarios como relaciones virtuales se denominan vistas. Las vistas son consultas a la base de datos cuya estructura (es decir, la consulta) se guarda en el diccionario de datos. Es un medio para ofrecer al usuario un modelo personalizado de la base de datos. Las vistas pueden ocultar datos que éste no necesite ver. La capacidad de las vistas de ocultar datos sirve tanto para simplificar el uso del sistema como para mejorar la seguridad. Las vistas simplifican el uso del sistema porque restringen la atención de los usuarios a los datos de interés. Aunque se puede negar a un usuario el acceso directo a una relación, se le puede permitir a ese usuario el acceso a parte de esa relación mediante una vista. Por tanto, una combinación de seguridad en el nivel relacional y de seguridad en el nivel de las vistas limita el acceso de los usuarios precisamente a los datos que necesitan.

    Una vez creada una vista, la misma puede reutilizarse para no repetir nuevamente la consulta que le dio origen. Incluso se puede recuperar una vista en otra consulta añadiendo otras sentencias.

    Cuando se define una vista, el sistema de la base de datos guarda la definición de la vista, en vez del resultado de la evaluación de la expresión del álgebra relacional que la define, es decir que los datos (obtenidos de la consulta) no se almacenan. Siempre que aparece una relación de vistas en una consulta, se sustituye por la expresión de consulta almacenada. Por tanto, la relación de vistas se vuelve a calcular siempre que se evalúa la consulta (no se actualizan automáticamente).

    Las relaciones de vistas pueden aparecer en cualquier lugar en que puedan hacerlo los nombres de las relaciones, salvo las restricciones al uso de las vistas en expresiones de actualización. Por tanto, se pueden utilizar vistas en las expresiones que definen otras vistas.

    Esquemas estructurados (bases de datos no relacionales)

    Varias áreas de aplicaciones de los sistemas de bases de datos están limitadas por las restricciones del modelo de datos relacional. En consecuencia, los investigadores han desarrollado varios modelos de datos para tratar con estos dominios de aplicación. Por ejemplo, existen algunas razones por las cuales un esquema podría no tener un diccionario de datos:

  • Aplicaciones que recolectan datos ad-hoc, sin conocer previamente cómo se almacenarán o se utilizarán los mismos.
  • Es posible que se conozca parte de la estructura, pero no su totalidad.
  • Hay atributos que son exclusivos para ciertas ocurrencias de una entidad.
  • Pueden existir ocurrencias de una entidad nueva que posean nuevos atributos.
  • Los SGBD relacionales, sus modelos y protocolos, tienen la fuerte premisa de cuidar al máximo la consistencia de las bases de datos, lo que implica límites en el desempeño de estas soluciones. Es por esto que surgen nuevas arquitecturas y modelos de gestión de datos bajo la denominación de no relacionales.

    Los esquemas estructurados permiten la especificación de los datos en los que cada elemento de datos del mismo tipo puede tener conjuntos de atributos diferentes. No utilizan un diccionario de datos; no obstante, manejan el concepto de tipo de dato. Estos esquemas son autodefinidos, es decir, se van construyendo a medida que se insertan los datos. No se utilizan PK, FK, claves UNIQUE ni claves de cualquier otro tipo.

    Por defecto, no hay un esquema predefinido para las entidades. Se pueden configurar restricciones de manera adicional, pero cuantas más se agreguen, peor va a funcionar el esquema y menos eficiente va a hacer. Cualquier restricción o validación que sea necesario hacer debe ser implementada en la aplicación por el programador.

    Los elementos de un esquema relacional funcionan de manera diferente en los semiestructurados:

    Al crear la base de datos, se define el nombre de la colección y, a partir de ahí, ya se pueden guardar datos. Al agregar un documento (registro) se le añade automáticamente un atributo definido como objeto, que es un documento embebido. Dos campos de dos documentos distintos pueden ser completados con tipos de datos distintos. Sin embargo, existen atributos exclusivos a los distintos documentos.

    La herramienta visual permite ver el contenido de una colección como lista o como tabla.

    Las referencias guardan las relaciones entre los datos a través de links o punteros de un documento a otro. Se trata de modelos de datos normalizados: las aplicaciones requieren acceder a más de un documento para recuperar datos relacionados.

    Los documentos embebidos establecen las relaciones entre los datos, almacenando datos relacionados dentro de su estructura como subdocumentos, dentro de un campo o array. Estos modelos desnormalizados permiten a las aplicaciones recuperar y manipular datos relacionados en una sola operación de base de datos.

    Comparativo Mongodb con BDs Relacionales

    El documento tiene un atributo que define como “Objeto”, que es un documento embebido.

    La herramienta visual, me permite ver el contenido de una colección como lista o como tabla.

    Me permite insertar un documento con el valor “No” en Finalizo CBC y otro con el valor Verdadero en un atributo con el mismo nombre. Ambos en la misma colección.

    Por otro lado, hay atributos exclusivos a los distintos documentos.

    Creó una validación, asociada a la colección “Alumno”, que indique que el campo “Nro Registro” es un entero y es obligatorio.

    Intento insertar un documento que no tiene el campo Nro Registro. El sistema no permite la operación

    Esquemas no estructurados

    En los esquemas no estructurados hay muy poca información respecto a los datos embebidos en ellos, como es el caso de bases de datos que guardan archivos HTML, de audio o de video.

  • Hay muy poca información respecto a los datos embebidos en estos esquemas.
  • Ejemplo: HTML, audios o videos.
  • Caso HTML:
  • Está pensado para su proceso y posterior visualización por seres humanos.
  • Está centrado en el diseño en pantalla.
  • Es muy difícil de interpretar automáticamente.
  • Todos los tags están predefinidos. No se puede “extender”.
  • Alternativa para intercambiar datos en la web: XML
  • ¿Por qué trabajar sin un diccionario de datos?
  • Aplicaciones que recolectan datos “ad-hoc” sin conocer previamente cómo se almacenará o cómo se utilizará.
  • Es posible que se conozca parte de la estructura pero no su totalidad.
  • Hay atributos que son exclusivos a muy pocas ocurrencias.
  • Ocurrencias “nuevas” pueden incluir nuevos atributos.
  • Diferencias con esquemas estructurados
  • ¿Cómo se construye el esquema?
  • Mezclado con los datos. Esquemas autodefinidos.
  • Nombre: Juana
  • Apellido: Perez
  • Restricciones
  • Por defecto, no hay un esquema predefinido para las entidades.
  • Se pueden configurar restricciones, de manera adicional.
  • Lenguaje de etiquetado extensible (XML)

    El Extensible Markup Language (XML, lenguaje de etiquetado extensible) es un estándar no licenciado, independiente de plataformas, y soportado por toda la industria de software. Permite representar los datos de bases de datos, así como muchas clases de datos estructurados. Es útil como formato de datos cuando las aplicaciones deben comunicarse con otras, o cuando hay que integrar información de varias aplicaciones.

    A diferencia de HTML, XML no impone las etiquetas permitidas, y se pueden elegir como sea necesario para cada aplicación. Esta característica es la clave de la función principal de XML en la representación e intercambio de datos, mientras que HTML se usa principalmente para el formato de documentos.

    El constructor fundamental en un documento XML es el elemento. Un elemento es sencillamente un par de etiquetas de inicio y finalización coincidentes y todo el texto que aparece entre ellas. XML permite estructuras anidadas: los elementos complejos se componen de otros elementos de manera jerárquica. En cambio, los elementos simples se componen de un solo valor. Esta estructura posibilita guardar elementos simples diferentes que formen parte del mismo elemento complejo. Posee dos grandes usos:

    Transmisión de datos

    XML permite el intercambio de datos con ampliaciones de actores externos o internos a la organización. Sus características son:

  • Estructura regular, conjuntos de atributos-valor, poco o ningún contenido adicional.
  • El orden en el que se presenta el contenido no es relevante.
  • Resultados de las consultas no ranqueados; sólo importa que éstos cumplan con las condiciones de la consulta.
  • Se puede categorizar como esquema semiestructurado o estructurado.
  • Basado en información-documentos

    Otro de los usos del XML es para presentar información. En estos casos se lo usa como medio de estructurar, almacenar y recuperar documentos y/o información. Es el estándar de facto para almacenar documentos por su capacidad de almacenar y utilizar su estructura (párrafos, secciones, notas al pie, etc.) y metadatos (autor, año de publicación, etc.). En estos casos, XML se caracteriza por:

  • Estructura no regular, baja granularidad en la información (la más pequeña unidad de información tiene contenido mixto o es el documento entero). Hay mucho contenido mixto.
  • Puede ser un esquema no estructurado o mixto (parte semiestructurada, parte no estructurada).
  • El orden en el que se presenta el contenido es relevante.
  • XML como medio de estructurar, almacenar y recuperar documentos/información.
  • Estándar de facto para almacenar documentos por su capacidad de almacenar y utilizar su estructura (párrafos, secciones, notas de pie, etc.) y metadatos (autor, año de publicación, etc.)
  • Puede ser un esquema no estructurado o mixto (parte semiestructurada, parte no estructurada)
  • El orden en el que se presenta el contenido es relevante.
  • Ejemplos: libros, leyes, email, etc.
  • Estructura no regular, baja granularidad en la información (la más pequeña unidad de información tiene contenido mixto o es el documento entero), mucho contenido mixto.
  • La validación de un documento en como un contrato:

  • El creador verifica que el documento ha sido creado apropiadamente,
  • El consumidor verifica que posee el formato esperado.
  • La validación de un esquema en XML se hace con un archivo adicional que define la estructura. Así, se tiene un archivo XML con los datos (que sería el diccionario) y otro que, con una herramienta, válida la estructura. La aplicación creadora verifica que el documento ha sido creado apropiadamente y la aplicación receptora verifica que posee el formato esperado.

    Existen dos posibilidades para validar un documento:

  • Document Type Definition (DTD): define la estructura de los datos de un XML. Restringe el tipo de información presente en el documento, estableciendo:
  • Qué elementos pueden existir.
  • Qué atributos puede/debe tener.
  • Qué subelementos pueden/deben existir dentro de cada elemento y cuántas veces.
  • Sin embargo, no define los tipos de datos: todos los valores son representados como cadenas de texto:

  • Los subelementos pueden ser definidos como:
  • Elementos.
  • Datos (#PCDATA)
  • Sin suplementos (EMPTY) o pueden existir subelementos (ANY).
  • La especificación de subelementos puede tener expresiones regulares. La notación es | (alternativas), + (1 o más ocurrencias), * (0 o más ocurrencias).
  • XML Schema Definition (XSD): es definido utilizando sintaxis de XML. Se trata de una representación más estándar, pero más compleja. Es más sofisticado que DTD. Soporta:
  • Tipos de datos:
  • Enteros, cadenas de texto, etc.
  • CONSTRAINTS sobre valores mínimos y máximos.
  • Tipos de datos definidos por el usuario y complejos.
  • Más funciones, incluyendo restricciones de unicidad, herencia y claves foráneas.